package persistent.impl;

import java.util.List;

import basic.HibBaseDAO;
import model.TFrontInformationType;
import persistent.dao.FrontInformationTypeDAO;

/**
 * 信息类型管理业务实现
 * @author 徐震霖
 * @since 2018-12-13 10:31
 */
public class FrontInformationTypeImpl implements FrontInformationTypeDAO {

	private HibBaseDAO dao;
	
	public FrontInformationTypeImpl() {
		dao = new HibBaseDAO();
	}

	
	/**
	 * 添加一个信息类型
	 * @param infotype 信息类型对象
	 * @return 成功返回自动编号
	 */
	@Override
	public int addInfoType(TFrontInformationType infotype) {
		return dao.insert(infotype);
	}

	/**
	 * 修改一个信息类型
	 * @param infotype 信息类型对象
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean updateInfoType(TFrontInformationType infotype) {		
		return dao.update(infotype);
	}

	/**
	 * 删除一个信息类型
	 * @param infotypeid 信息类型id
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean deleteInfoType(int infotypeid) {
		TFrontInformationType infotype = 
				(TFrontInformationType) dao.findById(TFrontInformationType.class, infotypeid);
		return dao.delete(infotype);
	}

	/**
	 * 启用一个信息类型
	 * @param infotypeid 信息类型id
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean enable(int infotypeid) {
		TFrontInformationType infotype = 
				(TFrontInformationType) dao.findById(TFrontInformationType.class, infotypeid);
		infotype.setIsdelete(true);
		return dao.update(infotype);
	}

	/**
	 * 停用一个信息类型
	 * @param infotypeid 信息类型id
	 * @return 成功返回true，失败返回false
	 */
	@Override
	public boolean disEnable(int infotypeid) {
		TFrontInformationType infotype = 
				(TFrontInformationType) dao.findById(TFrontInformationType.class, infotypeid);
		infotype.setIsdelete(false);
		return dao.update(infotype);
	}

	/**
	 * 得到所有信息类型
	 * @return 成功返回List<TFrontInformationType>的信息对象列表，失败返回null
	 */
	@Override
	public List<TFrontInformationType> getInfoTyepByStr() {
		String hql = "from TFrontInformationType";
		return dao.select(hql);
	}

	/**
	 * 分页得到所有信息类型
	 * @param currentPage 当前页
	 * @param pageSize 没有大小
	 * @return 成功返回List<TFrontInformationType>的信息对象列表，失败返回null
	 */
	@Override
	public List<TFrontInformationType> getInfoTyepByStrPage(int currentPage, int pageSize) {
		String hql = "from TFrontInformationType";
		return dao.selectByPage(hql, currentPage, pageSize);
	}

}
